package com.jimikongjian.service.dao.impl;

import com.jimikongjian.dao.IUserInfo;
import com.jimikongjian.models.UserInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * Created by baidu on 17/2/12.
 * @author fuxiuyang
 */
@Service("iUserInfoImpl")
public class IUserInfoImpl implements IUserInfo {

    @Autowired
//    @Qualifier("userInfoMapper")
    private IUserInfo userInfoMapper;

    /**
     * 通过User表中的id号查询用户的详细信息
     *
     * @param userId
     * @return List<UserInfo>
     */
    public List<UserInfo> getUserInfoListByUserId(int userId) {
        if(userId > 0){
            return userInfoMapper.getUserInfoListByUserId(userId);
        }
        return null;

    }

    /**
     * 通过User表中的id号查询用户的详细信息
     *
     * @param userId
     * @return UserInfo
     */
    public UserInfo getUserInfoByUserId(int userId) {
        List<UserInfo> userInfos = getUserInfoListByUserId(userId);
        if (userInfos != null && userInfos.size() > 0){
            return userInfos.get(0);
        }
        return null;
    }

    /**
     * 插入用户信息
     * UserInfo对象必填项:userId,nick,avater
     *
     * @param userInfo
     * @return 成功则返回true,否则返回false
     */
    public boolean insertUserInfo(UserInfo userInfo) {
        if(userInfo.getUserId() > 0 && userInfo.getNick() != null
                && userInfo.getAvatar() != null){
            userInfoMapper.insertUserInfo(userInfo);
            return true;
        }
        return false;
    }

    /**
     * 更新用户信息
     * UserInfo对象必填项:userId,nick,avater
     *
     * @param userInfo
     * @return 成功则返回true,否则返回false
     */
    public boolean updateUserInfo(UserInfo userInfo) {
        if(userInfo.getUserId() > 0){
            userInfo.setUserEmail(null);
            userInfo.setNick(null);
            userInfoMapper.updateUserInfo(userInfo);
            return true;
        }
        return false;
    }
    /**
     * 删除用户信息
     * UserInfo对象必填项:userId
     *
     * @param userInfo
     * @return 成功则返回true,否则返回false
     */
    public boolean deleteUserInfo(UserInfo userInfo) {
        if(userInfo.getUserId() >0){
            userInfoMapper.deleteUserInfo(userInfo);
            return true;
        }
        return false;
    }

    /**
     * 通过userId删除用户信息表中的信息
     * @param userId
     * @return 成功则返回true,否则返回false
     */
    public boolean deleteUserInfoByUserId(int userId){
        if(userId > 0){
            UserInfo userInfo = new UserInfo();
            userInfo.setUserId(userId);
            return deleteUserInfo(userInfo);
        }
        return false;
    }
}
